Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Species: Plasmaman #1291

Draft
wants to merge 159 commits into
base: master
Choose a base branch
from

Conversation

angelofallars
Copy link
Member

@angelofallars angelofallars commented Nov 29, 2024

Description

Adds the Plasmamen as a playable species. Plasmamen are a skeletal species who depend on Plasma to live, and oxygen is highly fatal to them. Being exposed to oxygen will set them on fire, unless they wear their envirosuits.

Species Description

PROS:

  • Takes 15% less Slash and 25% less Piercing damage.
  • Immune to Radiation and Cold Damage.
  • Does not have blood and cannot bleed out.
  • Does not experience hunger or thirst.
  • Comes with an envirosuit helmet that provides a flashlight and welding protection.
  • Due to being skeletons, they can consume Milk to gain a positive moodlet and slowly heal Brute, Heat, Shock, and Caustic damage.
  • Can consume Plasma to gain a bigger positive moodlet and heal every damage type faster than Milk, except Cellular.

CONS:

  • Takes 50% more Blunt and 50% more Heat damage.
  • Being on fire passively fades out half as much, and stop, drop, and rolling is half as effective.
  • Can only breathe plasma, and oxygen is highly toxic when inhaled.
  • Being exposed to oxygen sets them on fire. This can be prevented by the following:
    • Wearing envirosuits, EVA suits or hardsuits with full-body coverage.
    • Using a stasis bed prevents them from self-igniting even without an envirosuit.
  • Cannot eat, drink, or consume pills without taking off their envirosuit helmet.

SPECIAL:

  • Plasmamen speak the language Calcic, a language they share with Skeletons.

Shitmed Integration

Plasmamen are the first ever species designed with Shitmed in mind, with one of their core mechanics (self-ignition) powered entirely by Shitmed.

Whether or not a Plasmaman ignites from oxygen exposure depends only on their body parts. A Plasmaman with only their head exposed will not burn as much as an entirely naked Plasmaman. You can transfer Plasmaman body parts to non-Plasmamen through surgery so that they also ignite from oxygen exposure. Meanwhile, a Plasmaman with a non-Plasmaman head can expose their head without self-igniting.

video-2024-11-28_12.52.mp4

Most Plasmaman organs can be butchered with a knife to gain a single plasma sheet, which can make organ harvesting on Plasmamen a worthwhile endeavor especially if you're running low on plasma. Plasmaman body parts (legs, arms, hands, torso, etc.) can also be juiced in a reagent grinder to extract some plasma.

video-2024-11-24_1747.mp4

Plasmamen will have two combat traits, Plasmafire Punch and Toxoplasmic Punch, that increase their melee damage but damage their hand body parts on each melee hit. This is an example of my intended theme of Plasmamen in combat sacrificing their health to deal devastating damage, like setting themselves on fire to spread the fire to others.

Health doll after punching with Plasmafire Punch several times

Loadouts

The CharacterItemGroup prototype has two new fields: MinItems for the minimum amount of items required from this group and Requirements for the requirements a character needs to be able to select any item from the group. The items in CharacterItemGroup.Items can now set a Priority field which determines their priority in being selected when adding items to satisfy MinItems.

This allows Plasmamen to be guaranteed to spawn with the gear necessary for their survival, one envirosuit and one plasma tank, even without the user touching loadouts. They start with the emergency plasma tank, but can choose to buy higher-capacity plasma tanks with loadout points to replace it.

I still need to deal with updating the UI code to take into account minimum/maximum items, and group-based requirements 😅

Decided to just use job starting gear stuff to give plasmaman-necesssary gear.

Technical Details

This also cherry-picks space-wizards/space-station-14#28595 as a quality-of-life feature to ensure Plasmamen keep their internals on upon toggling their helmet with a breath mask on.

TODO

RELEASE-NECESSARY

  • Port more envirosuits / enviro helms (job-specific) and their sprites
  • Remove breath masks from default plasmaman loadouts because the envirohelms already allow them to breathe internals
  • Change default plasma tank to higher-capacity version
  • Prevent plasmamen from buying jumpsuits and helmets other than envirosuits
  • [ ] Client UI update for loadout groups min/max items and default items
  • Plasmaman-specific mask sprites from TG
  • Disable too cold alert for plasmamen
  • Create/port sprites for these jobs
    • Courier
    • Forensic Mantis
    • Corpsman (Resprite security envirosuit)
    • Prison Guard (Resprite security envirosuit)
    • Magistrate (No Paradise envirosuit so use new colorable envirosuit)
    • Blueshield (Port from Paradise and tg-ify?)
    • NanoTrasen Representative (No Paradise envirosuit so use new colorable envirosuit)
    • Martial Artist (use new colorable envirosuit and make pure white)
    • Musician (use new colorable envirosuit)
    • Reporter (use new colorable envirosuit)
    • Zookeeper (use new colorable envirosuit)
    • Service Worker (use new colorable envirosuit)
    • Gladiator
    • Technical Assistant
    • Medical Intern
    • Acolyte / Research Assistant
    • Security Cadet
    • Assistant
      • You know what. These intern jobs are fine. They can use their normal equivalent's envirosuits.
    • Logistics Officer (use new colorable envirosuit)
  • Adjust sprites to be closer to actual job
    • Captain (Shift color to be closer to ss14 captain)
    • CMO (Remove yellow accents)
    • Port HoP envirogloves sprite
  • Add starting gear for paradox anomaly, and antags and ghost roles
    • Paradox
    • Nukies
    • Disaster victims
    • Listening post operative
  • Make all envirosuit helmets have a glowing (unshaded) visor
  • Refactor conditional gear stuff to live only in StartingGearPrototype with SubGear List<ProtoId<StartingGearPrototype>> field and List<Requirement> field for sub-gear requirements
  • unique sprite for self-extinguish verb
  • Envirosuit extinguish visuals
  • Improve plasmaman organ extraction experience
    • Body parts now give 1 plasma sheet each, while Torso gives 3
    • Organs can be juiced to get plasma
  • Make envirohelm flashlights battery-powered
  • Plasmamen visuals
    • Grayscale sprites for color customization, and set default skintone color to Plasmaman classic skintone
    • Plasmaman eye organ sprite
  • Add basic loadouts
  • Add way to refill envirosuit charges (refill at medical protolathe after some research)

Low Importance

  • Envirogloves
  • (SCOPE CREEP) Plasma tanks sprite (only normal emergency/extended, rather low priority)
  • (SCOPE CREEP) Modify envirosuit helmet sprites to have a transparent visor
  • Glowing eyes/mouth marking
  • More cargo content with plasma tanks / envirosuits
    • Plasmaman survival kit like slime
    • Additional plasma tanks
    • (SCOPE CREEP) Plasmaman EVA suits
  • Add envirosuits to clothesmate
  • Add more plasma tanks to random lockers and job lockers
  • Turn envirosuit auto-extinguish into extinguish action
  • move self-extinguish verb stuff to shared for prediction of the verb
  • move self-extinguisher stuff away from extinguisher namespace
  • unique sprite for self-extinguish icon
    • ~~IDEA: purple glowy fire extinguisher ~~
  • on self-extinguish, check for pressure immunity OR ignite from gas immunity properly
  • See envirosuit extinguish charges in examine
  • Milk heals on ingestion
  • Plasma heals on ingestion
  • Self-ignition doesn't occur on a stasis bed
  • Self-ignition doesn't occur when dead
  • Guidebook entry
  • Make self-ignition ignore damage resistances from fire suits
  • Make self-ignition ignore damage resistances from armor
  • Unable to rot?
  • Make the envirosuit helmet toggle on for the character dummy in lobby
  • (SCOPE CREEP) One additional Plasmaman trait
  • Showers extinguish water as well as water tiles
    • Unnecessary as stasis beds now prevent ignition, allowing surgery on a plasmaman on stasis beds.
  • Unique punch animations for Plasmafire Punch/Toxoplasmic Punch traits
  • Actually remove toxoplasmic it's just slop filler tbh
  • Talk sounds
    • Normal
    • Question
    • Yell
  • Positive moodlet for drinking milk / more positive moodlet for drinking plasma
  • Increase moodlet bonus and also minimum reagent required for the plasma/milk moodlets
  • Increase fire rate base stacks on ignite cause putting out your helmet for a few secs isn't that dangerous due to the fire stacks immediately decaying
    • I think halving firestack fade from -0.1 to -0.05 might work to do the same thing too
  • (SCOPE CREEP) Get bone laugh sounds from monke 'monkestation/sound/voice/laugh/skeleton/skeleton_laugh.ogg'
  • (SCOPE CREEP) When EVA plasmaman suit is added, 25% caustic resist
  • Envirosuit helmet
    • Equivalent of 100% bio / 100% fire / 75% acid resist
  • Envirosuit
    • Equivalent of 100% bio / 100% fire / 75% acid resist
  • Envirogloves
    • Equivalent of 100% bio / 95% fire / 95% acid resist
  • Put breath mask back on
  • Refactor: put body parts covered data into component instead of being hardcoded

Media

Chat bubble

Plasmaman Body

Skeleton Language

image

(Bonus) Skeleton chat bubble

Guidebook Entry

Changelog

🆑 Skubman

  • add: The Plasmamen have arrived as the latest playable species. They need to breathe plasma to live, and a special jumpsuit to prevent oxygen from igniting them. In exchange, they never bleed, never need food or water, nor take damage from cold and radiation. Read more about the Plasmaman species in their Guidebook entry.
  • tweak: Internals are no longer toggled off if you take your helmet off but still have a gas mask on and vice versa.
  • tweak: Paradox Anomalies will now spawn with the original's loadout items.

angelofallars and others added 16 commits November 24, 2024 04:43
TODO: add plasmaman eyes sprite
When there are not enough items in a group, the loadout system
will load the default items. When the selected items in a group
exceeds the maximum amount allowed, the system will just reduce
the amount of items to the max amount instead of not loading anything
at all.

TODO: Backend is fine, need to handle the client UI stuff of this
Internals are still turned off by toggling the envirosuit tho
so might need to cherry pick #28595 from wizden
@github-actions github-actions bot added Changes: C# Changes any cs files Changes: Localization Changes any ftl files Changes: UI Changes any XAML files Changes: YML Changes any yml files Changes: Sprite Changes any png or json in an RSI Changes: Audio Changes any ogg files labels Nov 29, 2024
Copy link
Contributor

github-actions bot commented Nov 29, 2024

RSI Diff Bot; head commit 3e715e9 merging into 2c95329
This PR makes changes to 1 or more RSIs. Here is a summary of all changes:

Resources/Textures/Clothing/Hands/Gloves/Envirogloves/hop.rsi

State Old New Status
equipped-HAND Added
icon Added
inhand-left Added
inhand-right Added

Resources/Textures/Clothing/Head/Envirohelms/atmos.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/captain.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/cargo.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/ce.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/centcom_agent.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/centcom_officer.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/centcom_official.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/chaplain.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/chemist.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/clown.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/cmo.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/color.rsi

State Old New Status
accent-equipped-HELMET Added
accent-icon Added
accent-inhand-left Added
accent-inhand-right Added
equipped-HELMET Added
icon-flash Added
icon Added
inhand-left Added
inhand-right Added
midaccent-equipped-HELMET Added
midaccent-icon Added
midaccent-inhand-left Added
midaccent-inhand-right Added
on-equipped-HELMET Added
on-inhand-left Added
on-inhand-right Added
sideaccent-equipped-HELMET Added
sideaccent-equipped-INNERCLOTHING Added
sideaccent-icon Added
sideaccent-inhand-left Added
sideaccent-inhand-right Added
visor-equipped-HELMET Added
visor-icon Added
visor-inhand-left Added
visor-inhand-right Added

Resources/Textures/Clothing/Head/Envirohelms/coroner.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/engineering.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added
icon Added
on-equipped-HELMET Added

Resources/Textures/Clothing/Head/Envirohelms/genetics.rsi

State Old New Status
equipped-HELMET Added
icon-flash Added

Edit: diff updated after 3e715e9

plasmillions must endure 3 leading spaces on an empty lline

Signed-off-by: Skubman <[email protected]>
Signed-off-by: Skubman <[email protected]>
Signed-off-by: Skubman <[email protected]>
@Eagle-0
Copy link
Contributor

Eagle-0 commented Nov 29, 2024

holy shit

organs now need to be ground/juiced instead of butchered
grounded gives half/half nutriment and plasma (min 2.5/2.5),
juicing gives at least 5 plasma

body parts are no longer juiceable, and instead are butcherable
with a knife, yielding at least 1 plasma sheet per part

12 total plasma sheets from butchering + 38u from butchering
all available plasmaman organs = 158u Plasma per Plasmaman
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: Audio Changes any ogg files Changes: C# Changes any cs files Changes: Documentation Changes any xml or md files Changes: Localization Changes any ftl files Changes: Sprite Changes any png or json in an RSI Changes: UI Changes any XAML files Changes: YML Changes any yml files
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants